大括号{}和小括号()的作用

  • 代码
1
2
3
4
5
6
7
8
9
10
11
UILabel *l = ({

UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 300, 25)];

label.text = @"Hello world";

[self.view addSubview: label];

label;

});

执行代码都放在大括号和小括号的中间的。而且运行我们会发现最后l也是被赋值成功的。

  • 总结
    这样可以深思一下{}和()各有什么作用

    1. {}包装代码

      大家在写程序的时候不难发现,在OC函数方法都用它来包括在里面,包括block也是被大括号包在里面的。所以,它的主要作用就是用来包装代码块。

    2. ()执行代码

      在执行代码后,你会发现大括号中的代码都执行了,这就是因为小括号的原因。小括号的作用跟js,swift,以及java中其实感觉都是一样的,代码执行某个函数,只不过这里传入的不像参数,其他也可以把代码块当作参数。

  • 示例
1
2
3
4
5
6
7
UITableView *tableView = ({

UITableView *tabV = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, 300, 200)];

//最末尾的tabV会给tableView 赋值
tabV;
});